package GUI.almacen;

import java.text.DecimalFormat;
import java.text.NumberFormat;

import items.ContenedordeCompra;
import items.Item;
import items.ItemCompra;

import javax.swing.table.AbstractTableModel;

public class TablaCompra extends AbstractTableModel {
private static final long serialVersionUID = 1L;
private String[] nombrecolumnas;
private  ContenedordeCompra _compra;
 

	public TablaCompra(ContenedordeCompra unaCompra){
		this._compra=unaCompra;
		String[] nombreColumnasAux={"ID","NOMBRE", "MARCA","CANTIDAD","SUBTOTAL"};
		nombrecolumnas= nombreColumnasAux;
	}

	@Override
	public int getColumnCount() {
		int cuenta= nombrecolumnas.length;
		return cuenta;
	}

	@Override
	public int getRowCount() {
		 int cuenta= _compra.darListaCompra().size();
		return cuenta;
	}

	@Override
	public Object getValueAt(int rowIndex, int columnIndex) {
		 Object datoItem=null;
		 
		 Object[] items= _compra.darListaCompra().toArray();
		 ItemCompra item= (ItemCompra) items[rowIndex];
		 Item unItem= item.getItem();
		 
		 if(columnIndex==-1)
			 datoItem=item;
		 if(columnIndex==0)
			 datoItem= item.getIdItem();
		 if(columnIndex==1)
			 datoItem=unItem.getNombre();
		 if(columnIndex==2)
			 datoItem=unItem.getMarca();
		 if(columnIndex==3)
			 datoItem=new Integer(item.getCantidadItem());
		 if(columnIndex==4)
			 datoItem=formatearValor(item.calcularSubtotalItem());
			 
		return datoItem;
	}

	public String getColumnName(int col){
		String nombre= nombrecolumnas[col];
		return nombre;
	}
	
    public boolean isCellEditable( int fila, int col )
    {    return false;
    }
	
    private String formatearValor(double valor){
        DecimalFormat df = ( DecimalFormat )NumberFormat.getInstance( );
        df.applyPattern( "###,###.##e " );
        df.setMinimumFractionDigits( 2 );
        return df.format( valor );
    }
}
